/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.edu.assunto;

import br.edu.curso.Curso;
import br.edu.disciplina.Disciplina;
import br.edu.util.GenericDAO;
import br.edu.util.HibernateUtil;
import java.util.List;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author 'Pedro
 */
public class AssuntoDAO extends GenericDAO<Assunto>{
    
    public AssuntoDAO(){
        super(Assunto.class);
    }

    public List<Assunto> pesquisarDescricaoLike(String text) {
        List<Assunto> assuntos=null;
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        assuntos = (List<Assunto>) getSessao().createCriteria(Curso.class).add(Restrictions.ilike("descricao", text)).list();
        getSessao().close();
        return assuntos;
    }

    public Assunto pesquisarCodigo(Integer valueOf) {
        Assunto assunto;
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        assunto = (Assunto) getSessao().createCriteria(Assunto.class).add(Restrictions.eq("id", valueOf)).uniqueResult();
        getSessao().close();
        return assunto;
    }
    
    public List<Assunto> pesquisarPorDisciplina(Disciplina valueOf) {
        List<Assunto> assunto;
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        assunto = (List<Assunto>) getSessao().createCriteria(Assunto.class).
                add(Restrictions.eq("disciplina", valueOf)).list();
        getSessao().close();
        return assunto;
    }

    public boolean salvar(Assunto assunto) {
        if(assunto.getId()==0){
            adicionar(assunto);
        } else {
            atualizar(assunto);
        }
        return true;
    }
}
